<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::GStreamingCompiled Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html">GStreamingCompiled</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="../../d2/d77/classcv_1_1GStreamingCompiled-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::GStreamingCompiled Class Reference<div class="ingroups"><a class="el" href="../../d7/d0d/group__gapi.html">G-API framework</a> » <a class="el" href="../../d8/dd0/group__gapi__main__classes.html">G-API Main Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>Represents a computation (graph) compiled for streaming.  
 <a href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#details">More...</a></p>
<p><code>#include &lt;opencv2/gapi/gstreaming.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1f4f10ecfccca6cfec90b6418c3e377d"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a1f4f10ecfccca6cfec90b6418c3e377d">GStreamingCompiled</a> ()</td></tr>
<tr class="separator:a1f4f10ecfccca6cfec90b6418c3e377d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a027d4aa5e0fef550fe7389984482b3a5"><td align="right" class="memItemLeft" valign="top">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a027d4aa5e0fef550fe7389984482b3a5">metas</a> () const</td></tr>
<tr class="memdesc:a027d4aa5e0fef550fe7389984482b3a5"><td class="mdescLeft"> </td><td class="mdescRight">Vector of metadata this graph was compiled for.  <a href="#a027d4aa5e0fef550fe7389984482b3a5">More...</a><br/></td></tr>
<tr class="separator:a027d4aa5e0fef550fe7389984482b3a5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab7cd2f5971886fc2e4670c40abfa92c8"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#ab7cd2f5971886fc2e4670c40abfa92c8">operator bool</a> () const</td></tr>
<tr class="memdesc:ab7cd2f5971886fc2e4670c40abfa92c8"><td class="mdescLeft"> </td><td class="mdescRight">Check if compiled object is valid (non-empty)  <a href="#ab7cd2f5971886fc2e4670c40abfa92c8">More...</a><br/></td></tr>
<tr class="separator:ab7cd2f5971886fc2e4670c40abfa92c8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac9961bb29f6e049fcda55384877b8bb5"><td align="right" class="memItemLeft" valign="top">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a> &amp; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#ac9961bb29f6e049fcda55384877b8bb5">outMetas</a> () const</td></tr>
<tr class="memdesc:ac9961bb29f6e049fcda55384877b8bb5"><td class="mdescLeft"> </td><td class="mdescRight">Vector of metadata descriptions of graph outputs.  <a href="#ac9961bb29f6e049fcda55384877b8bb5">More...</a><br/></td></tr>
<tr class="separator:ac9961bb29f6e049fcda55384877b8bb5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af4c31493fc72aae2afabcbe8eec9aaa5"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#af4c31493fc72aae2afabcbe8eec9aaa5">pull</a> (<a class="el" href="../../d2/d75/namespacecv.html#a54832d96bd6bdd570c7ceb4127f6cad1">cv::GRunArgsP</a> &amp;&amp;outs)</td></tr>
<tr class="memdesc:af4c31493fc72aae2afabcbe8eec9aaa5"><td class="mdescLeft"> </td><td class="mdescRight">Get the next processed frame from the pipeline.  <a href="#af4c31493fc72aae2afabcbe8eec9aaa5">More...</a><br/></td></tr>
<tr class="separator:af4c31493fc72aae2afabcbe8eec9aaa5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa7d26e86b5a7680ddde2f76c17dcacd1"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#aa7d26e86b5a7680ddde2f76c17dcacd1">pull</a> (<a class="el" href="../../d2/d75/namespacecv.html#a7ca4194ecb050c91f5852b4111706e8f">cv::GOptRunArgsP</a> &amp;&amp;outs)</td></tr>
<tr class="memdesc:aa7d26e86b5a7680ddde2f76c17dcacd1"><td class="mdescLeft"> </td><td class="mdescRight">Get some next available data from the pipeline.  <a href="#aa7d26e86b5a7680ddde2f76c17dcacd1">More...</a><br/></td></tr>
<tr class="separator:aa7d26e86b5a7680ddde2f76c17dcacd1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1085c0627d28ea178f607ee225dd5100"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a1085c0627d28ea178f607ee225dd5100">running</a> () const</td></tr>
<tr class="memdesc:a1085c0627d28ea178f607ee225dd5100"><td class="mdescLeft"> </td><td class="mdescRight">Test if the pipeline is running.  <a href="#a1085c0627d28ea178f607ee225dd5100">More...</a><br/></td></tr>
<tr class="separator:a1085c0627d28ea178f607ee225dd5100"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a20f82ac711832fec1b2be70e7a3785de"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a20f82ac711832fec1b2be70e7a3785de">setSource</a> (<a class="el" href="../../d2/d75/namespacecv.html#a3d9c032e5fe7892151570efc6ac08e51">GRunArgs</a> &amp;&amp;ins)</td></tr>
<tr class="memdesc:a20f82ac711832fec1b2be70e7a3785de"><td class="mdescLeft"> </td><td class="mdescRight">Specify the input data to <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> for processing, a generic version.  <a href="#a20f82ac711832fec1b2be70e7a3785de">More...</a><br/></td></tr>
<tr class="separator:a20f82ac711832fec1b2be70e7a3785de"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac63ffa3d5413a35cc09948bf078f197c"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#ac63ffa3d5413a35cc09948bf078f197c">setSource</a> (const <a class="el" href="../../da/d03/classcv_1_1gapi_1_1wip_1_1IStreamSource.html#afa9caf180bca701df9b10a6974eaa8ff">gapi::wip::IStreamSource::Ptr</a> &amp;s)</td></tr>
<tr class="memdesc:ac63ffa3d5413a35cc09948bf078f197c"><td class="mdescLeft"> </td><td class="mdescRight">Specify an input video stream for a single-input computation pipeline.  <a href="#ac63ffa3d5413a35cc09948bf078f197c">More...</a><br/></td></tr>
<tr class="separator:ac63ffa3d5413a35cc09948bf078f197c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a85ada34dc17c0573a317160cb9c89db7"><td class="memTemplParams" colspan="2">template&lt;typename T , typename... Args&gt; </td></tr>
<tr class="memitem:a85ada34dc17c0573a317160cb9c89db7"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a85ada34dc17c0573a317160cb9c89db7">setSource</a> (Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a85ada34dc17c0573a317160cb9c89db7"><td class="mdescLeft"> </td><td class="mdescRight">Constructs and specifies an input video stream for a single-input computation pipeline with the given parameters.  <a href="#a85ada34dc17c0573a317160cb9c89db7">More...</a><br/></td></tr>
<tr class="separator:a85ada34dc17c0573a317160cb9c89db7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3cc45dcb57acab91359b4e8493bb39a4"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3cc45dcb57acab91359b4e8493bb39a4">start</a> ()</td></tr>
<tr class="memdesc:a3cc45dcb57acab91359b4e8493bb39a4"><td class="mdescLeft"> </td><td class="mdescRight">Start the pipeline execution.  <a href="#a3cc45dcb57acab91359b4e8493bb39a4">More...</a><br/></td></tr>
<tr class="separator:a3cc45dcb57acab91359b4e8493bb39a4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3974060adbb61cd678387463fc19c0a5"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3974060adbb61cd678387463fc19c0a5">stop</a> ()</td></tr>
<tr class="memdesc:a3974060adbb61cd678387463fc19c0a5"><td class="mdescLeft"> </td><td class="mdescRight">Stop (abort) processing the pipeline.  <a href="#a3974060adbb61cd678387463fc19c0a5">More...</a><br/></td></tr>
<tr class="separator:a3974060adbb61cd678387463fc19c0a5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af4a40c09634ba45686b2177f38c49022"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#af4a40c09634ba45686b2177f38c49022">try_pull</a> (<a class="el" href="../../d2/d75/namespacecv.html#a54832d96bd6bdd570c7ceb4127f6cad1">cv::GRunArgsP</a> &amp;&amp;outs)</td></tr>
<tr class="memdesc:af4a40c09634ba45686b2177f38c49022"><td class="mdescLeft"> </td><td class="mdescRight">Try to get the next processed frame from the pipeline.  <a href="#af4a40c09634ba45686b2177f38c49022">More...</a><br/></td></tr>
<tr class="separator:af4a40c09634ba45686b2177f38c49022"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represents a computation (graph) compiled for streaming. </p>
<p>This class represents a product of graph compilation (calling <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#a53af72f7dafa8cbf416581628aaa32fd" title="Compile the computation for streaming mode. ">cv::GComputation::compileStreaming()</a>). Objects of this class actually do stream processing, and the whole pipeline execution complexity is incapsulated into objects of this class. Execution model has two levels: at the very top, the execution of a heterogeneous graph is aggressively pipelined; at the very bottom the execution of every internal block is determined by its associated backend. Backends are selected based on kernel packages passed via compilation arguments ( see <a class="el" href="../../d9/d29/group__gapi__compile__args.html">G-API Graph Compilation Arguments</a>, GNetworkPackage, GKernelPackage for details).</p>
<p><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> objects have a "player" semantics – there are methods like <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3cc45dcb57acab91359b4e8493bb39a4" title="Start the pipeline execution. ">start()</a> and <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3974060adbb61cd678387463fc19c0a5" title="Stop (abort) processing the pipeline. ">stop()</a>. <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> has a full control over a videostream and so is stateful. You need to specify the input stream data using <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a20f82ac711832fec1b2be70e7a3785de" title="Specify the input data to GStreamingCompiled for processing, a generic version. ">setSource()</a> and then call <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3cc45dcb57acab91359b4e8493bb39a4" title="Start the pipeline execution. ">start()</a> to actually start processing. After that, use pull() or <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#af4a40c09634ba45686b2177f38c49022" title="Try to get the next processed frame from the pipeline. ">try_pull()</a> to obtain next processed data frame from the graph in a blocking or non-blocking way, respectively.</p>
<p>Currently a single <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> can process only one video streat at time. Produce multiple <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> objects to run the same graph on multiple video streams.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a1f4f10ecfccca6cfec90b6418c3e377d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f4f10ecfccca6cfec90b6418c3e377d">◆ </a></span>GStreamingCompiled()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> cv::GStreamingCompiled::GStreamingCompiled </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;GStreamingCompiled object&gt;</td><td>=</td><td>cv.GStreamingCompiled(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a027d4aa5e0fef550fe7389984482b3a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a027d4aa5e0fef550fe7389984482b3a5">◆ </a></span>metas()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a>&amp; cv::GStreamingCompiled::metas </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Vector of metadata this graph was compiled for. </p>
<dl class="section return"><dt>Returns</dt><dd>Unless <em>reshape</em> is not supported, return value is the same vector which was passed to <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html#ab11bcc0578f9aa5ec8f8eaf6cda0dfa8" title="Compile the computation for specific input format(s). ">cv::GComputation::compile()</a> to produce this compiled object. Otherwise, it is the latest metadata vector passed to reshape() (if that call was successful). </dd></dl>
</div>
</div>
<a id="ab7cd2f5971886fc2e4670c40abfa92c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7cd2f5971886fc2e4670c40abfa92c8">◆ </a></span>operator bool()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::GStreamingCompiled::operator bool </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Check if compiled object is valid (non-empty) </p>
<dl class="section return"><dt>Returns</dt><dd>true if the object is runnable (valid), false otherwise </dd></dl>
</div>
</div>
<a id="ac9961bb29f6e049fcda55384877b8bb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9961bb29f6e049fcda55384877b8bb5">◆ </a></span>outMetas()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="../../d2/d75/namespacecv.html#a5f31109e95e8ff4ced55b5e85f885fb1">GMetaArgs</a>&amp; cv::GStreamingCompiled::outMetas </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Vector of metadata descriptions of graph outputs. </p>
<dl class="section return"><dt>Returns</dt><dd>vector with formats/resolutions of graph's output objects, auto-inferred from input metadata vector by operations which form this computation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a> objects produced from the same cv::GComputiation graph with different input metas may return different values in this vector. </dd></dl>
</div>
</div>
<a id="af4c31493fc72aae2afabcbe8eec9aaa5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4c31493fc72aae2afabcbe8eec9aaa5">◆ </a></span>pull() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::GStreamingCompiled::pull </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a54832d96bd6bdd570c7ceb4127f6cad1">cv::GRunArgsP</a> &amp;&amp; </td>
          <td class="paramname"><em>outs</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GStreamingCompiled.pull(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Get the next processed frame from the pipeline. </p>
<p>Use <a class="el" href="../../d2/d75/namespacecv.html#ac82b8a261b82157293b603b55c096a9e">gout()</a> to create an output parameter vector.</p>
<p>Output vectors must have the same number of elements as defined in the <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> protocol (at the moment of its construction). Shapes of elements also must conform to protocol (e.g. <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> needs to be passed where <a class="el" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> has been declared as output, and so on). Run-time exception is generated on type mismatch.</p>
<p>This method writes new data into objects passed via output vector. If there is no data ready yet, this method blocks. Use <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#af4a40c09634ba45686b2177f38c49022" title="Try to get the next processed frame from the pipeline. ">try_pull()</a> if you need a non-blocking version.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">outs</td><td>vector of output parameters to obtain. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if next result has been obtained, false marks end of the stream. </dd></dl>
</div>
</div>
<a id="aa7d26e86b5a7680ddde2f76c17dcacd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7d26e86b5a7680ddde2f76c17dcacd1">◆ </a></span>pull() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::GStreamingCompiled::pull </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a7ca4194ecb050c91f5852b4111706e8f">cv::GOptRunArgsP</a> &amp;&amp; </td>
          <td class="paramname"><em>outs</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GStreamingCompiled.pull(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Get some next available data from the pipeline. </p>
<p>This method takes a vector of <a class="el" href="../../d2/d75/namespacecv.html#ac32210320fdf7a0291f24671c9d003c4">cv::optional</a> object. An object is assigned to some value if this value is available (ready) at the time of the call, and resets the object to empty() if it is not.</p>
<p>This is a blocking method which guarantees that some data has been written to the output vector on return.</p>
<p>Using this method only makes sense if the graph has desynchronized parts (see cv::gapi::desync). If there is no desynchronized parts in the graph, the behavior of this method is identical to the regular pull() (all data objects are produced synchronously in the output vector).</p>
<p>Use <a class="el" href="../../d2/d75/namespacecv.html#ac82b8a261b82157293b603b55c096a9e">gout()</a> to create an output parameter vector.</p>
<p>Output vectors must have the same number of elements as defined in the <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> protocol (at the moment of its construction). Shapes of elements also must conform to protocol (e.g. <a class="el" href="../../d2/d75/namespacecv.html#ac32210320fdf7a0291f24671c9d003c4">cv::optional&lt;cv::Mat&gt;</a> needs to be passed where <a class="el" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> has been declared as output, and so on). Run-time exception is generated on type mismatch.</p>
<p>This method writes new data into objects passed via output vector. If there is no data ready yet, this method blocks. Use <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#af4a40c09634ba45686b2177f38c49022" title="Try to get the next processed frame from the pipeline. ">try_pull()</a> if you need a non-blocking version.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">outs</td><td>vector of output parameters to obtain. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if next result has been obtained, false marks end of the stream.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>cv::gapi::desync </dd></dl>
</div>
</div>
<a id="a1085c0627d28ea178f607ee225dd5100"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1085c0627d28ea178f607ee225dd5100">◆ </a></span>running()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> bool cv::GStreamingCompiled::running </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.GStreamingCompiled.running(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Test if the pipeline is running. </p>
<dl class="section note"><dt>Note</dt><dd>This method is not thread-safe (with respect to the user side) at the moment. Protect the access if <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3cc45dcb57acab91359b4e8493bb39a4" title="Start the pipeline execution. ">start()</a>/stop()/setSource() may be called on the same object in multiple threads in your application.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>true if the current stream is not over yet. </dd></dl>
</div>
</div>
<a id="a20f82ac711832fec1b2be70e7a3785de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20f82ac711832fec1b2be70e7a3785de">◆ </a></span>setSource() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GStreamingCompiled::setSource </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a3d9c032e5fe7892151570efc6ac08e51">GRunArgs</a> &amp;&amp; </td>
          <td class="paramname"><em>ins</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.GStreamingCompiled.setSource(</td><td class="paramname">callback</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.GStreamingCompiled.setSource(</td><td class="paramname">s</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Specify the input data to <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html" title="Represents a computation (graph) compiled for streaming. ">GStreamingCompiled</a> for processing, a generic version. </p>
<p>Use <a class="el" href="../../d2/d75/namespacecv.html#a4941eb8cbe70b8c7187bc8459af7653b">gin()</a> to create an input parameter vector.</p>
<p>Input vectors must have the same number of elements as defined in the <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">cv::GComputation</a> protocol (at the moment of its construction). Shapes of elements also must conform to protocol (e.g. <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">cv::Mat</a> needs to be passed where <a class="el" href="../../df/daa/classcv_1_1GMat.html">cv::GMat</a> has been declared as input, and so on). Run-time exception is generated on type mismatch.</p>
<p>In contrast with regular <a class="el" href="../../d2/d2c/classcv_1_1GCompiled.html" title="Represents a compiled computation (graph). Can only be used with image / data formats &amp; resolutions i...">GCompiled</a>, user can also pass an object of type GVideoCapture for a <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> parameter of the parent <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a>. The compiled pipeline will start fetching data from that GVideoCapture and feeding it into the pipeline. Pipeline stops when a GVideoCapture marks end of the stream (or when <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3974060adbb61cd678387463fc19c0a5" title="Stop (abort) processing the pipeline. ">stop()</a> is called).</p>
<p>Passing a regular <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> for a <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a> parameter makes it "infinite" source – pipeline may run forever feeding with this <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> until stopped explicitly.</p>
<p>Currently only a single GVideoCapture is supported as input. If the parent <a class="el" href="../../d9/dfe/classcv_1_1GComputation.html" title="GComputation class represents a captured computation graph. GComputation objects form boundaries for ...">GComputation</a> is declared with multiple input <a class="el" href="../../df/daa/classcv_1_1GMat.html">GMat</a>'s, one of those can be specified as GVideoCapture but all others must be regular <a class="el" href="../../d3/d63/classcv_1_1Mat.html" title="n-dimensional dense array class ">Mat</a> objects.</p>
<p>Throws if pipeline is already running. Use <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3974060adbb61cd678387463fc19c0a5" title="Stop (abort) processing the pipeline. ">stop()</a> and then <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a20f82ac711832fec1b2be70e7a3785de" title="Specify the input data to GStreamingCompiled for processing, a generic version. ">setSource()</a> to run the graph on a new video stream.</p>
<dl class="section note"><dt>Note</dt><dd>This method is not thread-safe (with respect to the user side) at the moment. Protect the access if <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3cc45dcb57acab91359b4e8493bb39a4" title="Start the pipeline execution. ">start()</a>/stop()/setSource() may be called on the same object in multiple threads in your application.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ins</td><td>vector of inputs to process. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d2/d75/namespacecv.html#a4941eb8cbe70b8c7187bc8459af7653b">gin</a> </dd></dl>
</div>
</div>
<a id="ac63ffa3d5413a35cc09948bf078f197c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac63ffa3d5413a35cc09948bf078f197c">◆ </a></span>setSource() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> void cv::GStreamingCompiled::setSource </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../da/d03/classcv_1_1gapi_1_1wip_1_1IStreamSource.html#afa9caf180bca701df9b10a6974eaa8ff">gapi::wip::IStreamSource::Ptr</a> &amp; </td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.GStreamingCompiled.setSource(</td><td class="paramname">callback</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.GStreamingCompiled.setSource(</td><td class="paramname">s</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Specify an input video stream for a single-input computation pipeline. </p>
<p>Throws if pipeline is already running. Use <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3974060adbb61cd678387463fc19c0a5" title="Stop (abort) processing the pipeline. ">stop()</a> and then <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a20f82ac711832fec1b2be70e7a3785de" title="Specify the input data to GStreamingCompiled for processing, a generic version. ">setSource()</a> to run the graph on a new video stream.</p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>a shared pointer to IStreamSource representing the input video stream. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a85ada34dc17c0573a317160cb9c89db7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85ada34dc17c0573a317160cb9c89db7">◆ </a></span>setSource() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename... Args&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::GStreamingCompiled::setSource </td>
          <td>(</td>
          <td class="paramtype">Args &amp;&amp;... </td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.GStreamingCompiled.setSource(</td><td class="paramname">callback</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.GStreamingCompiled.setSource(</td><td class="paramname">s</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Constructs and specifies an input video stream for a single-input computation pipeline with the given parameters. </p>
<p>Throws if pipeline is already running. Use <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3974060adbb61cd678387463fc19c0a5" title="Stop (abort) processing the pipeline. ">stop()</a> and then <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a20f82ac711832fec1b2be70e7a3785de" title="Specify the input data to GStreamingCompiled for processing, a generic version. ">setSource()</a> to run the graph on a new video stream.</p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">args</td><td>arguments used to contruct and initialize a stream source. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a3cc45dcb57acab91359b4e8493bb39a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cc45dcb57acab91359b4e8493bb39a4">◆ </a></span>start()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> void cv::GStreamingCompiled::start </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.GStreamingCompiled.start(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Start the pipeline execution. </p>
<p>Use pull()/try_pull() to obtain data. Throws an exception if a video source was not specified.</p>
<p><a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a20f82ac711832fec1b2be70e7a3785de" title="Specify the input data to GStreamingCompiled for processing, a generic version. ">setSource()</a> must be called first, even if the pipeline has been working already and then stopped (explicitly via <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3974060adbb61cd678387463fc19c0a5" title="Stop (abort) processing the pipeline. ">stop()</a> or due stream completion)</p>
<dl class="section note"><dt>Note</dt><dd>This method is not thread-safe (with respect to the user side) at the moment. Protect the access if <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3cc45dcb57acab91359b4e8493bb39a4" title="Start the pipeline execution. ">start()</a>/stop()/setSource() may be called on the same object in multiple threads in your application. </dd></dl>
</div>
</div>
<a id="a3974060adbb61cd678387463fc19c0a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3974060adbb61cd678387463fc19c0a5">◆ </a></span>stop()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../da/dfe/exports_8hpp.html#a11b787c5fb3561e507d6779531bab28a">GAPI_WRAP</a> void cv::GStreamingCompiled::stop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.GStreamingCompiled.stop(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Stop (abort) processing the pipeline. </p>
<p>Note - it is not pause but a complete stop. Calling <a class="el" href="../../d1/d9b/classcv_1_1GStreamingCompiled.html#a3cc45dcb57acab91359b4e8493bb39a4" title="Start the pipeline execution. ">start()</a> will cause G-API to start processing the stream from the early beginning.</p>
<p>Throws if the pipeline is not running. </p>
</div>
</div>
<a id="af4a40c09634ba45686b2177f38c49022"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4a40c09634ba45686b2177f38c49022">◆ </a></span>try_pull()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::GStreamingCompiled::try_pull </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a54832d96bd6bdd570c7ceb4127f6cad1">cv::GRunArgsP</a> &amp;&amp; </td>
          <td class="paramname"><em>outs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Try to get the next processed frame from the pipeline. </p>
<p>Use <a class="el" href="../../d2/d75/namespacecv.html#ac82b8a261b82157293b603b55c096a9e">gout()</a> to create an output parameter vector.</p>
<p>This method writes new data into objects passed via output vector. If there is no data ready yet, the output vector remains unchanged and false is returned.</p>
<dl class="section return"><dt>Returns</dt><dd>true if data has been obtained, and false if it was not. Note: false here doesn't mark the end of the stream. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/gapi/<a class="el" href="../../de/d51/gstreaming_8hpp.html">gstreaming.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:43 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
